//
//  enuminfo.h
//  ltlbmc
//
//  Created by GD Huang on 5/22/12.
//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//

#ifndef ltlbmc_enuminfo_h
#define ltlbmc_enuminfo_h


#include <vector>
#include "attribute.h"
#include "location.h"
#include "ikind.h"
#include "OCamlObject.h"

namespace cilast {
    
    class exp;
    class attribute;
    
    class enumitem {
    public:    
        char*  name;
        exp*     value;
        location* loc;    
    };
    
    class enuminfo : public OCamlObject {
    public:    
        char*  ename;
        std::vector<enumitem*>    eitems;
        std::vector<attribute*>   eattr;
        bool    ereferenced;
        ikind   ekind;
    };
    
}
#endif
